using System;
using System.Collections.Generic;

namespace CMS.Core.Domain
{
    /// <summary>
    /// DonThu object for NHibernate mapped table DonThu.
    /// </summary>
    [Serializable]
    public class DonThu : DomainObject<System.String>
    {
        private System.Int32 _SoThuLy;
        private System.DateTime _DonDeNgay;
        private System.DateTime _NgayGui;
        private System.String _HoTen;
        private System.Byte _LanGui;
        private System.String _DiaChi;
        private System.Int32 _MaDiaBan;
        private System.String _DongGui;
        private System.Int32 _MaLoaiDon;
        private System.Int32 _MaLinhVuc;
        private System.String _NoiDung;
        private System.String _DeXuatYKien;
        private System.Boolean _VBChiDao;
        private System.String _KetQuaGiaiQuyet;
        private System.String _NguoiSoanThao;
        private System.Boolean _DinhKem;
        private System.Byte _TrangThai;
        private System.Byte _GuiQuaMang;
        private System.DateTime _NgayCapNhat = DateTime.Now;
        private System.Int32 _MaTTXL;
        private System.DateTime _NgayKetThucThucTe;
        private LinhVuc _LinhVuc;
        private DiaBan _DiaBan;
        private LoaiDon _LoaiDon;
        private TrangThaiXuLy _TrangThaiXuLy;
        private IList<VanBan> _VBCDs = new List<VanBan>();
        private IList<ChuyenTiep> _ChuyenTieps = new List<ChuyenTiep>();
        private IList<FileDinhKem> _FileDinhKems = new List<FileDinhKem>();

        public DonThu()
        {
            base.id = Guid.NewGuid().ToString().ToUpper();
        }

        public DonThu(System.String id)
        {
            base.ID = id;
        }

         public virtual System.Int32 SoThuLy {
             get { return _SoThuLy; }
             set { _SoThuLy = value;}
         }

         public virtual System.DateTime DonDeNgay {
             get { return _DonDeNgay; }
             set { _DonDeNgay = value;}
         }

         public virtual System.DateTime NgayGui {
             get { return _NgayGui; }
             set { _NgayGui = value;}
         }

         public virtual System.String HoTen {
             get { return _HoTen; }
             set { _HoTen = value;}
         }

         public virtual System.Byte LanGui {
             get { return _LanGui; }
             set { _LanGui = value;}
         }

         public virtual System.String DiaChi {
             get { return _DiaChi; }
             set { _DiaChi = value;}
         }

        public virtual System.Int32 MaDiaBan
        {
            get { return _MaDiaBan; }
            set { _MaDiaBan = value; }
        }

         public virtual System.String DongGui {
             get { return _DongGui; }
             set { _DongGui = value;}
         }

         public virtual System.Int32 MaLoaiDon {
             get { return _MaLoaiDon; }
             set { _MaLoaiDon = value;}
         }

         public virtual System.Int32 MaLinhVuc {
             get { return _MaLinhVuc; }
             set { _MaLinhVuc = value;}
         }

         public virtual System.String NoiDung {
             get { return _NoiDung; }
             set { _NoiDung = value;}
         }

         public virtual System.String DeXuatYKien {
             get { return _DeXuatYKien; }
             set { _DeXuatYKien = value;}
         }

         public virtual System.Boolean VBChiDao {
             get { return _VBChiDao; }
             set { _VBChiDao = value;}
         }

         public virtual System.String KetQuaGiaiQuyet {
             get { return _KetQuaGiaiQuyet; }
             set { _KetQuaGiaiQuyet = value;}
         }

         public virtual System.String NguoiSoanThao {
             get { return _NguoiSoanThao; }
             set { _NguoiSoanThao = value;}
         }

         public virtual System.Boolean DinhKem {
             get { return _DinhKem; }
             set { _DinhKem = value;}
         }

         public virtual System.Byte TrangThai {
             get { return _TrangThai; }
             set { _TrangThai = value;}
         }

         public virtual System.Byte GuiQuaMang {
             get { return _GuiQuaMang; }
             set { _GuiQuaMang = value;}
         }

         public virtual System.DateTime NgayCapNhat {
             get { return _NgayCapNhat; }
             set { _NgayCapNhat = value;}
         }

        public virtual System.Int32 MaTTXL
        {
            get { return _MaTTXL; }
            set { _MaTTXL = value; }
        }

         public virtual System.DateTime NgayKetThucThucTe {
             get { return _NgayKetThucThucTe; }
             set { _NgayKetThucThucTe = value;}
         }

         public virtual LinhVuc LinhVuc{
             get { return _LinhVuc; }
             set { _LinhVuc = value; }
         }

        public virtual DiaBan DiaBan
        {
            get { return _DiaBan; }
            set { _DiaBan = value; }
        }

         public virtual LoaiDon LoaiDon{
             get { return _LoaiDon; }
             set { _LoaiDon = value; }
         }

        public virtual TrangThaiXuLy TrangThaiXuLy
        {
            get { return _TrangThaiXuLy; }
            set { _TrangThaiXuLy = value; }
        }

        public virtual IList<VanBan> VBCDs
        {
            get { return _VBCDs; }
            set { _VBCDs = value; }
        }

        public virtual IList<ChuyenTiep> ChuyenTieps
        {
            get { return _ChuyenTieps; }
            set { _ChuyenTieps = value; }
        }

         public virtual IList<FileDinhKem> FileDinhKems{
             get { return _FileDinhKems; }
             set { _FileDinhKems = value; }
         }


        public override int GetHashCode()
        {
            return ID.GetHashCode();
        }

     }
}
